package com.eorchis.module.trainingquestionnaire.service;
import java.util.List;

import com.eorchis.core.service.IBaseService;
import com.eorchis.module.trainingneeds.domain.QueryQuestionnaireBean;
import com.eorchis.module.trainingquestionnaire.domain.ClassQuestionnaireSummary;
import com.eorchis.module.trainingquestionnaire.domain.PreviewQuestionnaireBean;
import com.eorchis.module.trainingquestionnaire.domain.QuestionnaireQueryBean;
import com.eorchis.module.trainingquestionnaire.domain.userquestionnairebean.PaperInfo;
import com.eorchis.module.trainingquestionnaire.domain.userquestionnairebean.SelectProblemInfo;
import com.eorchis.module.trainingquestionnaire.ui.commond.QuestionnaireQueryCommond;
import com.eorchis.module.trainingquestionnaire.ui.commond.QuestionnaireValidCommond;
/**
 * Title: IQuestionnaireService<br>
 * Description: 调查问卷管理业务接口<br>
 * Company: GoldGov<br>
 * Copyright @ 2012 GoldGov .All rights reserved.<br>
 * @author Administrator
 * @createDate 2014-08-27
 * @version $Revision$
 */
public interface IQuestionnaireService 
			extends IBaseService 
				
{
	/**
	 * 更新问卷活动状态
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-2-7
	 */
	public int updateQuestionnaireActiveState(QuestionnaireQueryCommond commond)
			throws Exception ;
	/**
	 * 查询活动问卷列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author Xupp
	 * @createDate 2014-8-27
	 */
	public List<QuestionnaireQueryBean> queryListByActiveState(QuestionnaireQueryCommond commond)throws Exception;
//	/**
//	 * 查询活动问卷
//	 * @param queryCommond
//	 * @return
//	 * @throws Exception
//	 * @author Xupp
//	 * @createDate 2014-8-27
//	 */
//	public QuestionnaireQueryBean queryQuestionnaireInfo(QuestionnaireValidCommond commond)throws Exception;
	/**
	 * 发布撤销培训需求调查问卷
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-2-7
	 */
	public String publishQuestionnaire(QuestionnaireQueryCommond queryCommond) throws Exception;
	/**
	 * 预览问卷信息
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-5-28
	 */
	public PreviewQuestionnaireBean previewQuestionnaire(QuestionnaireValidCommond commond) throws Exception;
	/**
	 * 配置课程问卷列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author Xupp
	 * @createDate 2014-8-27  LEFT  QuestionnaireSurveyObject  qs
	 */
	public List<QuestionnaireQueryBean> configureCourseQuestionnaire(QuestionnaireQueryCommond commond) throws Exception;
	/**
	 * 统计分析，问卷列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-4-29
	 */
	public List<QueryQuestionnaireBean> findEndQuestionnaireList(QuestionnaireQueryCommond queryCommond) throws Exception;
	/**
	 * 统计分析，查询问卷计划调查人数
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-09-02
	 */
	public List<String> querySurveyObjectNum(QuestionnaireQueryCommond queryCommond) throws Exception;
	/**
	 * 门户提醒信息，推送问卷开始提醒信息到门户
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-09-11
	 */
	public String sendStartQuestionnaireMess(QuestionnaireQueryCommond queryCommond) throws Exception;
	/**
	 * 门户提醒信息，查询问卷调查范围
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-09-04
	 */
	public String queryQuestionnaireSurveyScope(QuestionnaireQueryCommond queryCommond) throws Exception;
	/**
	 * 判断用户是否已经参加调查问卷
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-09-10
	 */
	public boolean isJoinQuestionnaire(QuestionnaireQueryCommond queryCommond) throws Exception;
	/**
	 * 发布问卷时，推送问卷开始提醒信息到门户
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-09-10
	 */
	public String sendStartMessInPublish(QuestionnaireQueryCommond queryCommond) throws Exception;
	/**
	 * 构建调查问卷
	 * @param commond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @date 2014-11-05
	 */
	public PaperInfo createQuestionnaireInfo(QuestionnaireValidCommond commond) throws Exception;
	
	/**
	 * 配置问卷列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author Xupp
	 * @createDate 2014-8-27  LEFT  QuestionnaireSurveyObject  qs
	 */
	public List<QuestionnaireQueryBean> configureQuestionnaire(
			QuestionnaireQueryCommond commond) throws Exception ;
	
	
	/**
	 * @查询评估开始和结束时间
	  * @Name: assessTime
	  * @Description: @param queryCommond
	  * @Description: @param request
	  * @Description: @param response
	  * @Description: @param resultState
	  * @Description: @return
	  * @Description: @throws Exception
	  * @Author: GUOLEI
	  * @Version: V1.00
	  * @Create Date: 2016-2-5下午2:19:45
	  * @Parameters: QuestionnaireController
	  * @Return: String
	 */
	public QuestionnaireQueryBean assessTime(QuestionnaireValidCommond validcommond) throws Exception;
	
	/**
	 * @查询评估开始和结束时间
	  * @Name: assessTime
	  * @Description: @param queryCommond
	  * @Description: @param request
	  * @Description: @param response
	  * @Description: @param resultState
	  * @Description: @return
	  * @Description: @throws Exception
	  * @Author: GUOLEI
	  * @Version: V1.00
	  * @Create Date: 2016-2-5下午2:19:45
	  * @Parameters: QuestionnaireController
	  * @Return: String
	 */
	public QuestionnaireQueryBean assessCourseTime(QuestionnaireValidCommond validcommond) throws Exception;
	
	/**
	 * @更新评估开始时间和评估结束时间
	  * @Name: updateAssessTime
	  * @Description: @param validcommond
	  * @Description: @param request
	  * @Description: @param response
	  * @Description: @param resultState
	  * @Description: @return
	  * @Description: @throws Exception
	  * @Author: GUOLEI
	  * @Version: V1.00
	  * @Create Date: 2016-2-5下午2:53:27
	  * @Parameters: QuestionnaireController
	  * @Return: String
	 */
	public String updateAssessTime(QuestionnaireValidCommond validcommond)throws Exception;
	
	/**
	 * @更新评估开始时间和评估结束时间
	  * @Name: updateAssessTime
	  * @Description: @param validcommond
	  * @Description: @param request
	  * @Description: @param response
	  * @Description: @param resultState
	  * @Description: @return
	  * @Description: @throws Exception
	  * @Author: GUOLEI
	  * @Version: V1.00
	  * @Create Date: 2016-2-5下午2:53:27
	  * @Parameters: QuestionnaireController
	  * @Return: String
	 */
	public String updateCourseAssessTime(QuestionnaireValidCommond validcommond)throws Exception;
	
	/**
	 * @删除问卷
	  * @Name: updateAssessTime
	  * @Description: @param validcommond
	  * @Description: @param request
	  * @Description: @param response
	  * @Description: @param resultState
	  * @Description: @return
	  * @Description: @throws Exception
	  * @Author: GUOLEI
	  * @Version: V1.00
	  * @Create Date: 2016-2-5下午2:53:27
	  * @Parameters: QuestionnaireController
	  * @Return: String
	 */
	public String deleteQuestionnaires(QuestionnaireValidCommond validcommonde)throws Exception;
	
	
	/**
	 * 问卷列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author GUOLEI
	 * @createDate 2014-8-27  LEFT  QuestionnaireSurveyObject  qs
	 */
	public List<QuestionnaireQueryBean> queryUserQuestionnaireList( QuestionnaireQueryCommond commond) throws Exception ;
	
	/**
	 * @throws Exception 
	 * @分题组
	  * @Name: problemSets
	  * @Description: @param commond
	  * @Description: @return
	  * @Author: GUOLEI
	  * @Version: V1.00
	  * @Create Date: 2016-2-14下午4:56:55
	  * @Parameters: QuestionnaireServiceImpl
	  * @Return: List<PaperInfo>
	 */
	
	public List<List<SelectProblemInfo>>  problemSets(List<SelectProblemInfo> selectProblemInfo) throws Exception;
	
	/**
	 * @throws Exception 
	 * @分题组
	  * @Name: problemSets
	  * @Description: @param commond
	  * @Description: @return
	  * @Author: GUOLEI
	  * @Version: V1.00
	  * @Create Date: 2016-2-14下午4:56:55
	  * @Parameters: QuestionnaireServiceImpl
	  * @Return: List<PaperInfo>
	 */
	public List<List<SelectProblemInfo>>  ExportProblemSets(List<SelectProblemInfo> selectProblemInfo) throws Exception;
	
	/**
	 * 查询课程信息
	 * @author RongSL
	 * @Date 2016-05-25
	 * */
	public QuestionnaireValidCommond findCourseInfo(QuestionnaireValidCommond commond) throws Exception;
	
	/**
	 * @author RongSL
	 * @Date 2016-05-26
	 * 根据课程id找到相关班级id
	 * */
	public String findClassId(QuestionnaireQueryCommond commond) throws Exception;
	
	/**
	 * 查询课程汇总数据
	 * @Date 2016-09-27
	 * @author RongSL
	 * */
	public List<ClassQuestionnaireSummary> findClassCourseQuestionSummary(QuestionnaireQueryCommond commond) throws Exception;
	
	/**
	 * 查询培训班汇总数据
	 * @Date 2016-10-08
	 * @author RongSL
	 * */
	public List<ClassQuestionnaireSummary> findClassQuestionSummaryRemarks(QuestionnaireQueryCommond commond) throws Exception ;
}
